﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Драсть. Я (почти) юзерфрендли программа с целой кучей непонятных и не связанных между собой функций. Если вы хотите поюзать меня, то выберите действие из списка ниже:");
            Console.WriteLine("1 - определить количество положительных, отрицательных и нулей среди введённых чисел;");
            Console.WriteLine("2 - вывести все двузначные числа, кратные 5;");
            Console.WriteLine("3 - найти максимульную и минимальную цифру числа;");
            Console.WriteLine("4 - вывести квадраты чисел от 10 до 20 включительно;");
            Console.WriteLine("5 - найти максимальное число из 5ти введённых;");
            Console.WriteLine("6 - вывести количество амёб за сутки при частоте цикла деления 3 часа;");
            Console.WriteLine("7 - определить сумму вклада через заданное количество лет при процентной ставке 3%;");
            Console.WriteLine("8 - вывести на экран все числа в диапазоне от 20 до 50, котореы делятся на 3, но не делятся на 5");
            Console.WriteLine("9 - инвертировать порядок цифр в введенном числе.");
            int choise = Int32.Parse(Console.ReadLine());
            switch (choise)
            {
                case 1:
                    NumberOfNumber();
                        break;
                case 2:
                    DoFirstTask();
                        break;
                case 3:
                    CountOfNumbers();
                    break;
                case 4:
                    Double();
                        break;
                case 5:
                    MaximumNumber();
                        break;
                case 6:
                    Amoeba();
                        break;
                case 7:
                    BankPercent();
                        break;
                case 8:
                    NumbersDividedIntoThreeNotFive();
                        break;
                case 9:
                    InvertNumberOrder();
                        break;

            }
        }
        static void NumberOfNumber()
        {
            Console.WriteLine("Введите количество чисел");
            int numberCount = Int32.Parse(Console.ReadLine());
            int positiveCount = 0;
            int negativeCount = 0;
            int zeroCount = 0;
            Console.WriteLine("Введите числа");
            for (; numberCount > 0; numberCount--)
            {
                int number = Int32.Parse(Console.ReadLine());
                if (number == 0)
                {
                    zeroCount++;
                }
                else if (number > 0)
                {
                    positiveCount++;
                }
                else
                {
                    negativeCount++;
                }
            }
            Console.WriteLine("Положительных {0}, отрицательных {1}, нолей {2}", positiveCount, negativeCount, zeroCount);

        }
        static void DoFirstTask()
        {
            Console.WriteLine("Двузначные числа, кратные 5:");
            int count = -99;
            for (; count < 100; count++)
            {
                if (count > -99 && count < -9)
                {
                    if (count % 5 == 0)
                        Console.WriteLine(count);
                    else
                        continue;
                }
                else if (count > 9 && count < 99)
                {
                    if (count % 5 == 0)
                        Console.WriteLine(count);
                    else
                        continue;
                }
            }

        }

        static void CountOfNumbers()
        {
            Console.WriteLine("Введите число");
            int number = Int32.Parse(Console.ReadLine());
            int max = 0;
            int min = 9;
            int count = 1;
            while (number / 10 > 0)
            {
                count++;
                int digit = number % 10;
                number = number / 10;
                if (digit > max)
                    max = digit;
                else if (digit < min)
                    min = digit;
            }
            if (number > max)
                max = number;
            if (number < min)
                min = number;

            Console.WriteLine(count);
            Console.WriteLine("Максимальное - {0}, минимальное = {1}", max, min);
        }

        static void Double()
        {
            int number = 10;
            for (; number <= 20; number++)
                Console.WriteLine(number * number);
        }

        static void MaximumNumber()

        {
            Console.WriteLine("Введите 5 чисел");
            bool isFirstIteration = true;
            int max = 0;
            int counter = 0;
            //for (int i = 5; i > 0; i--)
            //{
            //    int number = Int32.Parse(Console.ReadLine());
            //    if (number > max)
            //    {
            //        max = number;
            //    }
            //}
            do
            {
                int number = Int32.Parse(Console.ReadLine());
                if (isFirstIteration == true)
                {
                    isFirstIteration = false;
                    max = number;
                }
                else
                {
                    if (number > max)
                        max = number;
                }
                counter++;
            } while (counter < 5);
            Console.WriteLine("Максимальное число - {0}", max);

        }

        static void Amoeba()
        {
            int amoebaCount = 1;
            for (int hours = 0; hours <= 24; hours += 3)
            {
                Console.WriteLine("Количество амёб - {0}, спустя {1} часов", amoebaCount, hours);
                amoebaCount = amoebaCount * 2;
            }
        }
        static void BankPercent()
        {
            Console.WriteLine("Введите сумму стартового вклада, грн");
            double start = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество лет");
            int years = Int32.Parse(Console.ReadLine());
            for (int i = years; i > 0; i--)
            {
                start = start + (start * 3 / 100);
            }
            start = Math.Round(start, 2);
            Console.WriteLine("Сумма вклада будет равна {0} грн", start);
        }
        static void NumbersDividedIntoThreeNotFive()
            {
            for (int i = 20; i <= 50; i++)
            {
                if (i % 5 != 0)
                {
                    if (i % 3 == 0)
                    Console.WriteLine(i);
                }
               
            }
            }
        static void InvertNumberOrder ()
        {
            Console.WriteLine("Введите число (желательно многозначное, а то магии не будет)");
            int number = Int32.Parse(Console.ReadLine());
            int result = 0;
                do
            {
                int temp = number % 10;
                result = result * 10 + temp;
                number = (number - temp) / 10;
            }
            while
            (number != 0);
            
            Console.WriteLine(result);
            }

        //static void InvertNumberOrderVer2()
        //{
        //    Console.WriteLine("Введите число (желательно многозначное, а то магии не будет)");
        //    int number = Int32.Parse(Console.ReadLine());
        //    int result = 0;
        //    do
        //    {
        //        int temp = number % 10;
        //        result = result * 10 + temp;
        //        number = (number - temp) / 10;
        //        if (number < 10)
        //        {
        //            result = result * 10 + number;
        //            break;
        //        }
        //    }
        //    //a % b = a - (math.floor (a / b) * b)
        //    while
        //        (true);

        //    Console.WriteLine(result);
        //}

    }
    }

